#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

void test_1()
{
    vector<int> v(0);
    vector<int> v1(10,2);
    vector<int> v2(v1);
    vector<int> v3(v2.begin(),v2.end());
    string s = "fuh_cyscsucsrcsi";
    vector<int> v4(s.begin(),s.end());
    vector<int> v5({1,2,3,4});//初始化列表来初始化
    for(int i =0;i<v4.size();i++)
    {
        cout<<(char)v4[i];
    }
    cout<<endl;
    vector<int>::const_reverse_iterator it = v4.rbegin();
    for(;it!=v4.rend();it++)
    {
        cout<<(char)*it;
    }
    cout<<endl;
    vector<char> v6(v4.begin()+=3,v4.end());
    for(auto & cj: v6)
    {
        cout<<cj;
    }
    cout<<endl;
    v4.assign(v2.begin(),v2.end());
    for(const auto & ch:v4)
    {
        cout<<ch;
    }
    cout<<endl;
}

void test_2()
{
    vector<int> v;
    for(int i= 0;i<100;i++)
    {
        v.push_back(i);
        cout<<v.capacity()<<' ';
    }
    cout<< endl;
}
void test_3()
{
    vector<int> v;
    v.reserve(100);
    for(int i= 0;i<100;i++)
    {
        v[i] = i;//g++没有给下标访问给断言，是个坑,但是却访问到了里面的值
    }
    cout<< endl;
    for(int i= 0;i<100;i++)
    {
        cout<< v[i]<<' ';//g++没有给下标访问给断言，是个坑,但是却访问到了里面的值
    }
    //在vscode的local variables 就可以发现根本看不见。
    v.resize(100);//上述代码就是合理的
}

void test_4()
{
    vector<int> v1({1,2,3,4});
    v1.push_back(5);
    vector<int>::iterator it = find(v1.begin(),v1.end(),4);
    if(it!=v1.end())
    v1.insert(it,0);
    v1.insert(it,v1.begin(),v1.end()-=2);
    v1.insert(v1.end(),100,100);
}

void test_5(){
    vector<int> v1{1,2,3,4};
    auto it = v1.rbegin();
    while(it!= v1.rend())
    {
        cout<<*it++<<' ';
    }

}
// int main()
// {
//     test_5();
//     return 0;
// }





namespace fuh{

};